#include<bits/stdc++.h>
#define ll long long
#define Max(a,b,c)  max(a,max(b,c))
#define inf 2100000000
#define fa(i,n,k) for(register int i=k;i<=n;i++)

using namespace std;
ll n,Q;
struct sortt {
	ll num,pos,kk;
} a[8850],b[8850];


void patob() {
//	memset(b+1,b+n+1,0);
	fa(i,n,1)b[i].num=a[i].num,b[i].pos=a[i].pos,b[i].kk=a[i].kk;
}

void pbtoa() {
	fa(i,n,1)a[i].num=b[i].num,a[i].pos=b[i].pos,a[i].kk=b[i].kk;
}

bool cmp(sortt a,sortt b){
	return a.num==b.num ? a.kk<b.kk : a.num<b.num ;
}

void sort() {
	patob();
	sort(b+1,b+n+1,cmp);
//	for (int i = 1; i <= n; i++)
//		for (int j = i; j>=2; j--)
//			if ( b[j].num < b[j-1].num ) {
//				int t = a[j-1];
//				a[j-1] = a[j];
//				a[j] = t;
//				swap(b[j].num,b[j-1].num);
//				swap(b[j].pos,b[j-1].pos);
//			}
}

void w1(ll x,ll v) {
	pbtoa();
	a[x].num=v;
	sort();

}

int w2(ll x) {
	ll ffff=inf;
	fa(i,n,1)if(b[i].num==a[x].num&&b[i].pos==a[x].pos&&b[i].kk==a[x].kk){
//		cout<<b[i].num<<endl<<b[i].pos<<endl;
		return i;
	}
//	return ffff;
}

int main() {
	freopen("sort.in","r",stdin);
	freopen("sort.out","w",stdout);
	scanf("%lld%lld",&n,&Q);
	for(int i=1; i<=n; i++)cin>>a[i].num,a[i].pos=i,a[i].kk=i;

	
	while(Q--) {
		int f;
		ll x,v;
//		scanf("%d%lld%lld",&f,&x,&v);
		cin>>f>>x;
		if(f==1) {
			cin>>v;
			sort();
			w1(x,v);
//			cout<<endl;
//			for(int i=1;i<=n;i++)cout<<b[i].num<<' '<<b[i].pos<<"\n";
		} else {
//			int pox=x
			sort();
//			for(int i=1; i<=n; i++)cout<<b[i].num;
//			cout<<endl;
//			for(int i=1; i<=n; i++)cout<<b[i].pos;
//			cout<<endl;
			cout<<w2(x)<<endl;
		}
	}
	return 0;
}

